package com.wbcs.config.resource;

import org.dom4j.Element;

import com.wbcs.config.xml.XmlAssistant;
import com.wbcs.exception.WbcsConfigLoadingException;
import com.wbcs.util.Tools;

public class ButtonRes extends AbsResource
{
    @Override
	public Object getValue(Element itemElement)
    {
        if(itemElement==null) return null;
        String key=itemElement.attributeValue("key");
        if(key==null||key.trim().equals(""))
        {
            throw new WbcsConfigLoadingException("配置的按钮资源项没有配置key属性");
        }
        Element eleButton=itemElement.element("button");
        if(eleButton==null) return null;
        String extendsParent=eleButton.attributeValue("extends");
        if(extendsParent!=null&&!extendsParent.trim().equals(""))
        {
            if(!Tools.isDefineKey("$",extendsParent))
            {
                throw new WbcsConfigLoadingException("加载按钮资源项"+key+"下配置的按钮失败，被继承的父按钮对应的KEY："+extendsParent+"不是合法的资源项KEY，必须是${key}格式");
            }
            String parentKey=Tools.getRealKeyByDefine("$",extendsParent).trim();
            if(parentKey.equals(""))
            {
                throw new WbcsConfigLoadingException("加载按钮资源项"+key+"下配置的按钮失败，被继承的父按钮对应的KEY："+extendsParent+"的真正key为空");
            }
            if(parentKey.equals(key.trim()))
            {
                throw new WbcsConfigLoadingException("加载按钮资源项"+key+"下配置的按钮失败，不能自己继承自己");
            }
            
        }
        return XmlAssistant.getInstance().parseXmlValueToXmlBean(eleButton);
    }
}
